Успіх

Робота в команді – найважливіший навик розробника

В інституті кілька років тому мене вчили чогось не того. Перші ж робочі дні дали зрозуміти, що найчастіше IT-освіта вкрай далеко від реальності.

Сьогодні ситуація набагато краще – більшість топових Вузів відходять від стандартних форм навчання, і роблять ставку на проектну діяльність і роботу в команді. Це здорово. Це те, чого не вистачає величезної кількості вузів поменше.

Розробка на практиці виявилася більшою мірою зовсім не написанням коду, як я по початку наївно припускав. Перш ніж цей код взагалі почати писати, треба для початку вивчити пачку складних інструментів для командної роботи – всі ці системи контролю версій, CI/CD, баг-трекер і так далі.

Освоєння кожного з цих інструментів у майстерності займає величезну кількість часу. Але результат того вартий. У великих компаніях процес розробки неймовірно складний, і спостерігати за тим, як функціонує кожна його шестірня – це чудово. Особливо, якщо ці шестірні – твоїх рук справа.

Я звик працювати один, я так продуктивніше

Я чув цю фразу від більш досвідченого розробника зі своєї команди. За такими фразами зазвичай йдуть проблеми.

Продуктивність такого розробника зазвичай полягає в його власній швидкості “рішення” завдань.

  • Виправив баг всього за 15 хвилин? Тримай два нових!
  • Зробив фічу по заголовку завдання? Замовник хотів іншого!
  • Зробив фічу – а де тести? Протестував на виявляли у своєму житті таку!

Інструменти для командної роботи, природно, відкидаються за непотрібністю.

Читач, не будь таким розробником.

Вивчи git-flow

Їх багато видів. Можна вивчити. Зрозумій навіщо вони потрібні і які проблеми вирішують.

Git – чудова система контролю версій. Без подібних систем написання спільного коду в проекті на сьогоднішній день неможлива. Git у своїй концепції настільки простий і зручний, що його можна (і потрібно! ) використовувати навіть у власних pet-проектах, де немає командної розробки.

Розберися в CI/CD процесах

Сьогодні багато хороших систем для ci/cd – Teamcity, Jenkins, Travis, Gitlab CI, GitHub Actions і так далі. Всі вони оперують приблизно одними й тими ж поняттями. Розберися в тому, з яких кроків складається весь процес складання твого програми. Навчися писати власні кроки на декларативних мовами, зараз це є вже у всіх.

Написання складних розлогих пайплайнов – це, звичайно, окремий вид мистецтва і болю, але тим не менш це менше зло, ніж ручний деплой незрозумілого шматка коду без мінімальних перевірок.

Навчися працювати з баг-трекерами

Скільки команд при переході на удаленку перенесли свої дошки зі стікерами в Jira?

Jira, ймовірно, ще довго буде тут лідером. Створення і гарне ведення завдань потрібно не тільки, щоб начальник стежив за тим, що ти робиш. Команда повинна розуміти над якими завданнями цілому ведеться робота.

Agile, Scrum – тут же. Не буду говорити плюси і мінуси методологій, зазначу лише те, що скрізь є свої неймовірно корисні практики. Спринтование допомагає з розумінням своєї швидкості роботи над завданнями і термінами їх закриття. Kanban дошка неймовірно зручна для візуального розуміння поточного прогресу, не тільки команди, але й особистого.

Jira, і багато інших баг-трекер не тільки дозволяють створювати завдання з текстом, але і зручно працювати з практиками гнучких методологій розробки.

Почуття внутрішнього задоволення за все зміну стікери на канбан-дошці – відмінний мотиватор. Можна поставитися до цього як до елементу гейміфікації.

Поділися своєю експертизою і досвідом

Але не Word! Є безліч неймовірно зручних систем на сьогоднішній день. Навіть той же Confluence все ще дуже функціональний, потужний і зручний для написання статей.

Окремо тут зазначу чудовий Notion. Писати тексти потрібно в сучасних редакторах. У більшості випадків величезного розмаїття функціоналу того ж word не треба нікому. Написання тексту в Notion за ступенем задоволення порівнянно з програмуванням на знайомому мовою у налаштованої під себе IDE.

Мотивація писати статті зі своїм досвідом думаю і так зрозуміла – до них можна повернутися через час і освіжити свою пам’ять, або ткнути в статтю людини, якщо його питання вже докладно описаний текстом. Правильно написані тексти можуть економити купу як свого часу, так і часу інших людей.